<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/8/14
 * Time: 8:18
 */

namespace app\index\controller;

use app\common\controller\HomeBase;  // model
use think\Db;                       // db
use think\Session;
use think\Request;
use app\common\model\Red as RedModel;
use app\api\controller\Upload as UploadApi;
use app\common\model\Mid as MidModel;

class Red extends  HomeBase{
    protected  $_red_model;
    protected  $_upload_api;
    protected  $_mid_model;
    protected function _initialize()
    {
        parent::_initialize();
        $this->_red_model = new RedModel();
        $this->_upload_api = new UploadApi();
        $this->_mid_model = new MidModel();
    }

    /* ------------------------------  start  中秋贺卡 页面
     * 中秋贺卡 页面
     * */
    public function autumn(){
        if(strpos($_SERVER['HTTP_USER_AGENT'] , 'MicroMessenger')){
            //微信访问
            $redirect_url = urlencode('https://love.163ar.cn/index/oauth/mid');
            header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxdce09ad7ceab8ae8&redirect_uri='.$redirect_url.'&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect');
        }
    }
    public function midAutumn(){
        return $this->fetch('midAutumn');
    }
    public function makemid(){
        $ins_path = '';
        $ins_path_url =  'https://love.163ar.cn/static/images/dayoff/';
        $midlist = [];
        if(Request::instance()->isPost()){
            // 对方名字username  类型type 祝福语mywish 根据不同的类型返回不同的底图
            $mininfo = Request::instance()->post();

            $midtype = (int)($mininfo['type']);
            if($midtype == 1){
                $ins_path =$ins_path_url. '1.jpg';
            }elseif($midtype ==2){
                $ins_path =$ins_path_url. '2.jpg';
            }elseif($midtype == 3){
                $ins_path =$ins_path_url. '3.jpg';
            }elseif($midtype == 4){
                $ins_path =$ins_path_url. '4.jpg';
            }else{
                $ins_path =$ins_path_url. '5.jpg';
            }
//            echo $ins_path;
            // 写入数据库
            $midlist['username'] =  $mininfo['username'];
            $midlist['type'] =  $mininfo['type'];
            $midlist['mywish'] =  $mininfo['mywish'];
            $midlist['create_time'] = date('Y-m-d H:i:s', time()) ;
            $midlist['openid'] =  Session::get('user.openid');
            $result = $this->_mid_model->save($midlist);
        }
        return $this->fetch('makemid',[
            'path'      => $ins_path, //底图链接
            'ins_msg'   => 'https://love.163ar.cn/index/red/autumn' , //二维码链接
            'username'  => $midlist['username'] ,
            'type'       => $midlist['type'] ,
            'mywish'    =>$midlist['mywish'],
        ]);

    }

    // ----------------- end 中秋贺卡 页面

    public function ccount($id=0){
        $ins_path =  '';
        $ins_msg = '';
        $ins_type = 0;
        if(Request::instance()->isPost()) {
            // 获取表单数据  判断数据返回
            $ins_info = Request::instance()->post();
            dump($ins_info);
//            exit();  //男性：(身高cm－80)×70﹪=标准体重 女性：(身高cm－70)×60﹪=标准体重
            // 判断类型 A 待成长类型
            $ins_path = '/uploads/20180814/redus.jpg';
            $ins_msg = '小小的身板还有很大的成长空间, 记得多吃饭,多运动,不要挑食,以后就能成为上面漂亮的小姐姐';

            $stand_hei = (int)$ins_info['height'];
            $stand_wei = ($stand_hei - 80) * 0.7;
            dump($stand_hei);
            echo('---------');
            dump($stand_wei);
        }
    }

    /* ------------------ start 红书推荐页面  -------------------------
     * 用户输入性别 身高 和体重
     * */
    public function index(){
        return $this->fetch();
    }

    /*
     * 根据用户输入的表单信息返回对应的ins装扮
     * */
    public function bins($id=0){

        $ins_path =  '';
        $ins_msg = '';
        if(Request::instance()->isPost()){
            // 获取表单数据  判断数据返回
            $ins_info = Request::instance()->post();
//            dump($ins_info);
//            exit();  男性：(身高cm－80)×70﹪=标准体重 女性：(身高cm－70)×60﹪=标准体重
            //
            $bk_info = self::check($ins_info);

//            dump($bk_info);exit();

            // 存入数据库
            $ins_info['bk'] = $bk_info['ins_msg'];
            $ins_info['create_time'] = date('Y-m-d H:i:s', time());
            $result = $this->_red_model->save($ins_info);

            return $this->fetch(
                'result',[
                    'id'        => $result['id'],
                    'path'      => $bk_info['ins_path'] ,
                    'ins_msg'   => $bk_info['ins_msg'] ,
                    'username'  => $ins_info['username'] ,
                    'sex'       => $ins_info['sex'] ,
                    'height'    => $ins_info['height'],
                    'weight'    => $ins_info['weight']
                ]
            );
        }else{
            //
            if($id){  // where('pid',75)->select();
                $result = $this->_red_model->where('id',$id)->select();
//                dump($result); exit();
                $bk_info = self::check($result[0]);
//                dump($bk_info);
//                Request::instance()->get(['id'=>$result[0]['id']]);
                return $this->fetch(
                    'result',[
                        'id'        => $result[0]['id'],
                        'path'      => $bk_info['ins_path'] ,
                        'ins_msg'   => $bk_info['ins_msg'] ,
                        'username'  => $result[0]['username'] ,
                        'sex'       => $result[0]['sex'] ,
                        'height'    => $result[0]['height'],
                        'weight'    => $result[0]['weight']
                    ]
                );

            }else{
                $this->error('没有输入信息数据,返回输入吧','red/index');
            }
        }
    }
    //   ------------------ start 红书推荐页面  -------------------------

    public function share($id){
        if($id){  // where('pid',75)->select();
            $result = $this->_red_model->where('id',$id)->select();
//                dump($result); exit();
            $bk_info = self::check($result[0]);
//                dump($bk_info);
//                Request::instance()->get(['id'=>$result[0]['id']]);
            return $this->fetch(
                'result',[
                    'id'        => $result[0]['id'],
                    'path'      => $bk_info['ins_path'] ,
                    'ins_msg'   => $bk_info['ins_msg'] ,
                    'username'  => $result[0]['username'] ,
                    'sex'       => $result[0]['sex'] ,
                    'height'    => $result[0]['height'],
                    'weight'    => $result[0]['weight']
                ]
            );
        }else{
            $this->error('没有输入信息数据,返回输入吧','red/index');
        }
    }


    /*
     * 传参数返回  根据性别+身高+体重返回对应的信息
     * */
    protected function check($ins_info){
        $ins_type = 0;
        $stand_hei = (int)$ins_info['height'];

        if($ins_info['sex'] == 1){
            // 男生判断区域
            $stand_wei  = ($stand_hei - 80 ) * 0.7 ;
            $int_wei = (int)$ins_info['weight'];
            $compare_res = $int_wei - $stand_wei; // 当前体重减标准体重

            if($ins_info['height'] < 140 ){
                $ins_type = 14;
            }elseif($ins_info['height'] > 200){
                $ins_type = 20;
            }elseif($ins_info['weight'] < 40){
                $ins_type = 4;
            }elseif($ins_info['weight'] > 120){
                $ins_type = 12;
            }else{
                // 根据不同的情况匹配 体重40-100Kg 内  身高 140-190cm  体重
                if(abs($compare_res) < 5 ){// 正常体型
                    $ins_type = 1;
                }elseif($compare_res < -5){

                    if($compare_res<-20){
                        // 皮包骨头
                        $ins_type = 5;
                    }elseif($compare_res<-10){
                        // 太瘦了
                        $ins_type = 3;
                    }else{  // 皮包骨头
                        // 偏瘦
                        $ins_type = 2;
                    }
                }elseif($compare_res > 5){

                    if($compare_res>20){ // 泰山压顶
                        $ins_type = 8;
                    }elseif($compare_res>10){
                        // 太胖了
                        $ins_type = 7;
                    }else{  // 偏胖
                        $ins_type = 6;
                    }
                }
            }
        }else{
            // 女神
            $stand_wei  = ($stand_hei - 70 ) * 0.7 ;
            $int_wei = (int)$ins_info['weight'];
            $compare_res = $int_wei - $stand_wei; // 当前体重减标准体重
            if($ins_info['height'] < 140 ){
                $ins_type =141;
            }elseif($ins_info['height'] > 200){
                $ins_type = 201;
            }elseif($ins_info['weight'] < 40){
                $ins_type = 41;
            }elseif($ins_info['weight'] > 120){
                $ins_type = 121;
            }else{
                // 根据不同的情况匹配 体重40-100Kg 内  身高 140-190cm  体重
                if(abs($compare_res) < 5 ){// 正常体型
                    $ins_type = 11;
                }elseif($compare_res < -5){

                    if($compare_res<-20){
                        // 皮包骨头
                        $ins_type = 51;
                    }elseif($compare_res<-10){
                        // 太瘦了
                        $ins_type = 31;
                    }else{  // 皮包骨头
                        // 偏瘦
                        $ins_type = 21;
                    }
                }elseif($compare_res > 5){

                    if($compare_res>20){ // 泰山压顶
                        $ins_type = 81;
                    }elseif($compare_res>10){
                        // 太胖了
                        $ins_type = 71;
                    }else{  // 偏胖
                        $ins_type = 61;
                    }
                }
            }
        }

        /*
         * 根据对应的类型返回结果
         * */

        switch($ins_type){
            case 1:
                $ins_path = '/static/temp/1.jpg';
                $ins_msg = '标准的衣架子,只要一点点努力就能成为潮男';
                break;
            case 2:
                $ins_path = '/static/temp/2.jpg';
                $ins_msg = '偏瘦型,适合穿稍微宽松一点的嘻哈风';
                break;
            case 3:
                $ins_path = '/static/temp/3.jpg';
                $ins_msg = '太瘦了哟,平时要注意多吃点东西,太瘦了的话抱不动女票的';
                break;
            case 5:
                $ins_path = '/static/temp/5.jpg';
                $ins_msg = '皮包骨头,了解一下,几乎就剩下骨架了';
                break;
            case 6:
                $ins_path = '/static/temp/6.jpg';
                $ins_msg = '微胖型蓝孩子,不过不影响着装,稍微注意一下就是潮男一枚';
                break;
            case 7:
                $ins_path = '/static/temp/7.jpg';
                $ins_msg = '偏胖的类型,适合着宽松的衣服,开心就好';
                break;
            case 8:
                $ins_path = '/static/temp/8.jpg';
                $ins_msg = '泰山压顶既视感,哈哈哈,喝水都会长身体';
                break;
            case 14:
                $ins_path = '/static/temp/14.jpg';
                $ins_msg = '小小的身板还有很大的成长空间, 记得多吃饭,多运动,不要挑食,以后就能成为上面的小哥哥';
                break;
            case 20:
                $ins_path = '/static/temp/20.jpg';
                $ins_msg = '走到哪里都是地标,已经很难买到合身的衣服的, 去定制吧';
                break;
            case 4:
                $ins_path = '/static/temp/4.jpg';
                $ins_msg = '太瘦了,骨干型男生,建议多吃肉,健康最重要';
                break;
            case 12:
                $ins_path = '/static/temp/12.jpg';
                $ins_msg = '生活太好了,哈哈,还是得考虑一下减肥了';
                break;

            case 11:
                $ins_path = '/static/temp/11.jpg';
                $ins_msg = '标准的衣架子,穿什么都有模有样,只要合身就好看';
                break;
            case 21:
                $ins_path = '/static/temp/21.jpg';
                $ins_msg = '偏瘦型,可以多出去走走看看';
                break;
            case 31:
                $ins_path = '/static/temp/31.jpg';
                $ins_msg = '太瘦了哟,平时不要挑食,身体最重要';
                break;
            case 51:
                $ins_path = '/static/temp/51.jpg';
                $ins_msg = '皮包骨头,厌食症代表作,还是建议多吃点东西,然后活动活动';
                break;
            case 61:
                $ins_path = '/static/temp/61.jpg';
                $ins_msg = '雍容型女神,平时可以穿宽松的西洋类裙子,可以犹抱琵琶半遮面';
                break;
            case 71:
                $ins_path = '/static/temp/71.jpg';
                $ins_msg = '现代版的杨贵妃,雍容华贵,代表着生活的方向';
                break;
            case 81:
                $ins_path = '/static/temp/81.jpg';
                $ins_msg = '时代什么的不管了,只要开开心心做个吃货';
                break;
            case 141:
                $ins_path = '/static/temp/141.jpg';
                $ins_msg = '小小的身板还有很大的成长空间, 记得多吃饭,多运动,不要挑食,以后就能成为上面的小姐姐';
                break;
            case 201:
                $ins_path = '/static/temp/201.jpg';
                $ins_msg = '走到哪里都是地标,超越了模特的身板, 去定制服装吧';
                break;
            case 41:
                $ins_path = '/static/temp/41.jpg';
                $ins_msg = '太瘦了,骨干型,建议多吃饭,长身体,健康最重要';
                break;
            case 121:
                $ins_path = '/static/temp/121.jpg';
                $ins_msg = '开开心心的吃货一枚,克拉女神的潜力股';
                break;

            default:
                $ins_path = '/static/temp/red1.jpg';
                $ins_msg = '未知类型,哈哈哈,送你一个小姐姐吧';
                break;
        }

        $ins_list = [
            'ins_path'  => $ins_path,
            'ins_msg'   => $ins_msg
        ];
        return $ins_list;
    }

    /*
     * 七夕节最ins的装扮
     * */
    public function ins(){
        $ins_path = '';$ins_msg='';

        if($ins_info['height'] <= 150 ){
            if($ins_info['weight'] < 45){
                $ins_type = 1;
            }elseif($ins_info['weight'] < 55){
                $ins_type = 2;
            }elseif($ins_info['weight'] < 63){
                $ins_type = 3;   // 小胖
            }else{
                // 胖
                $ins_type = 0;
            }
        }elseif($ins_info['height'] <= 160){
            if($ins_info['weight'] < 40){
                // 判断类型 B 待成长类型
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';

            }elseif($ins_info['weight'] < 45){
                //   判断类型 A 待成长类型
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 50){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 60){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 70){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 80){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }else{
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }

        }elseif($ins_info['height'] <= 160){    //  -------------------   160  ------------------

            if($ins_info['weight'] < 40){
                // 判断类型 B 待成长类型
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';

            }elseif($ins_info['weight'] < 45){
                //   判断类型 A 待成长类型
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 50){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 60){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 70){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }elseif($ins_info['weight'] < 80){
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }else{
                $ins_path = '/uploads/20180814/redloli.jpg';
                $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
            }
            //  -------------------   160  ------------------
        }elseif($ins_info['height'] <= 170){
            $ins_path = '/uploads/20180814/redloli.jpg';
            $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
        }elseif($ins_info['height'] <= 180){
            $ins_path = '/uploads/20180814/redloli.jpg';
            $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';
        }elseif($ins_info['height'] <= 190){
            $ins_path = '/uploads/20180814/redloli.jpg';
            $ins_msg = '小萝莉,适合穿一些淡色的服装, 不化妆,不自卑,本来就很美';

        }else{
            $ins_path = '/uploads/20180814/redus.jpg';
            $ins_msg = '走到哪里都是地标,已经很难买到合身的衣服的, 去定制吧';
        }

        /*
         * 这里生成推荐图片, 附带性别 身高 和体重等信息, 并提示登录
         * */

        return $this->fetch(
            'result',[
                'path'      => $ins_path ,
                'ins_msg'   => $ins_msg ,
                'username'  => $ins_info['username'] ,
                'sex'       => $ins_info['sex'] ,
                'height'    => $ins_info['height'],
                'weight'    => $ins_info['weight']
            ]
        );
    }

    /*
     * 七夕节最ins的妆
     * */
    public function makeup(){
        return $this->fetch();
    }

    public function mcheck(){
        // 获取名字返回相应的测试

        $ins_array = [
            [ 'ins_path'  => '/static/beauty/1.jpg',
                'ins_msg'   =>  '元气满满,适合淡妆出行,足够吸引男生是注意了'],
            [ 'ins_path'  => '/static/beauty/2.jpg',
                'ins_msg'   =>  '这么好看的颜色,适合火热的今天'],
            [ 'ins_path'  => '/static/beauty/3.jpg',
                'ins_msg'   =>  '新手眼线画法教程,简单好用,还不贵'],
            [ 'ins_path'  => '/static/beauty/4.jpg',
                'ins_msg'   =>  '这是口红吗?不,这是少女心, 满满都是少女情怀'],
            [ 'ins_path'  => '/static/beauty/5.jpg',
                'ins_msg'   =>  '妆容分享 | 少女感标配&超显气色的腮红推荐'],
            [ 'ins_path'  => '/static/beauty/6.jpg',
                'ins_msg'   =>  '黄皮肤也可以轻松驾驭的欧美吃土色 了解一下'],
            [ 'ins_path'  => '/static/beauty/7.jpg',
                'ins_msg'   =>  '眼妆配上粉紫色系,加上偏光清透的闪片'],
            [ 'ins_path'  => '/static/beauty/8.jpg',
                'ins_msg'   =>  '冷色好唇釉 每个品牌都有自己最骄傲的热门'],
            [ 'ins_path'  => '/static/beauty/9.jpg',
                'ins_msg'   =>  '满满的女王气场,今天就是你的主场'],
            [ 'ins_path'  => '/static/beauty/10.jpg',
                'ins_msg'   =>  '这一抹温柔的玫瑰豆沙色,能触碰你最柔软的内心,还是莫兰迪色'],
            [ 'ins_path'  => '/static/beauty/11.jpg',
                'ins_msg'   =>  '平价化妆刷,自感的平价,淡妆也能萌萌哒'],
            [ 'ins_path'  => '/static/beauty/12.jpg',
                'ins_msg'   =>  '睫毛贴的好,小眼没烦恼! 新手一学就会的假睫毛教程!'],
            [ 'ins_path'  => '/static/beauty/13.jpg',
                'ins_msg'   =>  '呛口的小辣椒,超县白色的正红色,哑光持久不沾杯'],
            [ 'ins_path'  => '/static/beauty/14.jpg',
                'ins_msg'   =>  '新手眼线画法教程,简单好用,论眼线的重要性'],
            [ 'ins_path'  => '/static/beauty/15.jpg',
                'ins_msg'   =>  '最近用到持久度最一流的唇釉在这里'],
            [ 'ins_path'  => '/static/beauty/16.jpg',
                'ins_msg'   =>  '谁能抵挡这么好看的豆沙粉色, 冷门但独特的'],
            [ 'ins_path'  => '/static/beauty/17.jpg',
                'ins_msg'   =>  '唇上温柔C位色 下午茶来一只豆沙奶茶的'],
        ];
        $ins_num = count($ins_array);
        $ins_choose = rand(0,$ins_num - 1 );
//        dump($ins_num);
//        dump($ins_choose);
        return $ins_array[$ins_choose];

    }

    /*
     * 七夕节最ins的妆
     * */
    public function mins(){
        if(Request::instance()->isPost()) {
            // 获取表单数据  判断数据返回
            $ins_info = Request::instance()->post();
            $bk_info = self::mcheck($ins_info);

            // 存入数据库
            $ins_info['bk'] = $bk_info['ins_msg'];
            $ins_info['create_time'] = date('Y-m-d H:i:s', time());
            $result = $this->_red_model->save($ins_info);

            return $this->fetch(
                'mins', [
                    'id' => $result['id'],
                    'path' => $bk_info['ins_path'],
                    'ins_msg' => $bk_info['ins_msg'],
                    'username' => $ins_info['username'],
                ]
            );
        }
    }

    public function upload_img(){
        $config = [
            'size' => 209715200,
            'ext'  => 'jpg,gif,png,bmp,zip,jpeg'
        ];

        $file = $this->request->file('file');
        if($file){
            $upload_path = str_replace('\\', '/', ROOT_PATH . 'public/uploads');
            $save_path   = '/uploads/';
            $info        = $file->validate($config)->move($upload_path);

            if ($info) {
                $result = [
                    'error' => 0,
                    'status' => 0,
                    'url'   => str_replace('\\', '/', $save_path . $info->getSaveName())
                ];
            } else {
                $result = [
                    'error'   => 1,
                    'message' => $file->getError()
                ];
            }
            return json($result);
        }
    }


}